﻿using LinqToBing.Bing.Wrapper.Search;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using System.Xml.Linq;
using LinqToBing.Bing.Wrapper.Enums;
using System.Collections.Generic;

namespace LinqToBing.Bing.Test
{
    
    
    /// <summary>
    ///This is a test class for SearchResultBaseTest and is intended
    ///to contain all SearchResultBaseTest Unit Tests
    ///</summary>
    [TestClass()]
    public class SearchResultBaseTest
    {


        private TestContext testContextInstance;

        /// <summary>
        ///Gets or sets the test context which provides
        ///information about and functionality for the current test run.
        ///</summary>
        public TestContext TestContext
        {
            get
            {
                return testContextInstance;
            }
            set
            {
                testContextInstance = value;
            }
        }

        #region Additional test attributes
        // 
        //You can use the following additional attributes as you write your tests:
        //
        //Use ClassInitialize to run code before running the first test in the class
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Use ClassCleanup to run code after all tests in a class have run
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Use TestInitialize to run code before running each test
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion


        internal virtual SearchResultBase CreateSearchResultBase()
        {
            // TODO: Instantiate an appropriate concrete class.
            SearchResultBase target = null;
            return target;
        }

        /// <summary>
        ///A test for ParseDocument
        ///</summary>
        [TestMethod()]
        public void ParseDocumentTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            XDocument xdoc = null; // TODO: Initialize to an appropriate value
            target.ParseDocument(xdoc);
            Assert.Inconclusive("A method that does not return a value cannot be verified.");
        }

        /// <summary>
        ///A test for AppId
        ///</summary>
        [TestMethod()]
        public void AppIdTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            string expected = string.Empty; // TODO: Initialize to an appropriate value
            string actual;
            target.AppId = expected;
            actual = target.AppId;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Body
        ///</summary>
        [TestMethod()]
        public void BodyTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            SearchResultBody expected = null; // TODO: Initialize to an appropriate value
            SearchResultBody actual;
            target.Body = expected;
            actual = target.Body;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Count
        ///</summary>
        [TestMethod()]
        public void CountTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            int expected = 0; // TODO: Initialize to an appropriate value
            int actual;
            target.Count = expected;
            actual = target.Count;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Guid
        ///</summary>
        [TestMethod()]
        public void GuidTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            Guid actual;
            actual = target.Guid;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Header
        ///</summary>
        [TestMethod()]
        public void HeaderTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            SearchResultHeader expected = null; // TODO: Initialize to an appropriate value
            SearchResultHeader actual;
            target.Header = expected;
            actual = target.Header;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for InvokeUrl
        ///</summary>
        [TestMethod()]
        public void InvokeUrlTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            string actual;
            actual = target.InvokeUrl;
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Offset
        ///</summary>
        [TestMethod()]
        public void OffsetTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            int expected = 0; // TODO: Initialize to an appropriate value
            int actual;
            target.Offset = expected;
            actual = target.Offset;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Query
        ///</summary>
        [TestMethod()]
        public void QueryTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            string expected = string.Empty; // TODO: Initialize to an appropriate value
            string actual;
            target.Query = expected;
            actual = target.Query;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for SearchProtocol
        ///</summary>
        [TestMethod()]
        public void SearchProtocolTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            SearchProtocol expected = new SearchProtocol(); // TODO: Initialize to an appropriate value
            SearchProtocol actual;
            target.SearchProtocol = expected;
            actual = target.SearchProtocol;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Sources
        ///</summary>
        [TestMethod()]
        public void SourcesTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            List<SearchSource> expected = null; // TODO: Initialize to an appropriate value
            List<SearchSource> actual;
            target.Sources = expected;
            actual = target.Sources;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Title
        ///</summary>
        [TestMethod()]
        public void TitleTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            string expected = string.Empty; // TODO: Initialize to an appropriate value
            string actual;
            target.Title = expected;
            actual = target.Title;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Total
        ///</summary>
        [TestMethod()]
        public void TotalTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            int expected = 0; // TODO: Initialize to an appropriate value
            int actual;
            target.Total = expected;
            actual = target.Total;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for Url
        ///</summary>
        [TestMethod()]
        public void UrlTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            Uri expected = null; // TODO: Initialize to an appropriate value
            Uri actual;
            target.Url = expected;
            actual = target.Url;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }

        /// <summary>
        ///A test for XDocument
        ///</summary>
        [TestMethod()]
        public void XDocumentTest()
        {
            SearchResultBase target = CreateSearchResultBase(); // TODO: Initialize to an appropriate value
            XDocument expected = null; // TODO: Initialize to an appropriate value
            XDocument actual;
            target.XDocument = expected;
            actual = target.XDocument;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
    }
}
